package com.codemes.happylist.modules.iciba;

import cn.hutool.core.date.DateUtil;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONUtil;
import com.codemes.happylist.utils.CacheUtil;
import com.codemes.happylist.utils.HttpClientUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StringUtils;

import java.util.Date;

/**
 * @author nscoffee
 */
@Slf4j
public class IcibaDailyPhaseUtil {

    public static final String API_DAILY_URL = "https://open.iciba.com/dsapi/?date=%S";
    /**
     * <pre>
     {
         'sid':'' #每日一句ID
         'tts': '' #音频地址
         'content':'' #英文内容
         'note': '' #中文内容
         'love': '' #每日一句喜欢个数
         'translation':'' #词霸小编
         'picture': '' #图片地址
         'picture2': '' #大图片地址
         'caption':'' #标题
         'dateline':'' #时间
         's_pv':'' #浏览数
         'sp_pv':'' #语音评测浏览数
         'tags':'' #相关标签
         'fenxiang_img':'' #合成图片，建议分享微博用的
     }
     * </pre>
     */
    public static IcibaDailyDTO getDailyPhase(Date date){
        date = date ==null ? new Date() : date;
        String formatDate = DateUtil.format(date,"yyyy-MM-dd");
        String resultJson = CacheUtil.get(formatDate);
        if(!StringUtils.isEmpty(resultJson)){
            log.info("读取每日一句缓存，命中缓存 >> {}",resultJson);
            return JSONUtil.toBean(resultJson,IcibaDailyDTO.class);
        }
        String url = String.format(API_DAILY_URL,formatDate);
        log.info("金山词霸，每日一句 url = {}",url);
        HttpResponse response = HttpClientUtil.get(url);
        log.info("resp status ={}", response.getStatus());
        resultJson = response.body();
        log.info("金山词霸，每日一句 result = {}",resultJson);
        CacheUtil.set(formatDate,resultJson);
        return JSONUtil.toBean(resultJson,IcibaDailyDTO.class);
    }


    public static void main(String[] args) {
        System.out.println(getDailyPhase(null ));
    }
}
